https://school.programmers.co.kr/learn/courses/30/lessons/155652
s , skip, index
์ธ ์ธ์๋ฅผ ๋ฐ๋๋ค.
s๋ ์ํธ๋ฌธ, s์ ๊ฐ ๊ธ์๋ค์ ASCII์ฝ๋์์ index๋งํผ ๋ํ ๋ฌธ์๊ฐ ๋ณตํธํ๋ ๋ฌธ์๋ค.
๊ทธ๋ฐ๋ฐ skip
์ ํด๋นํ๋ ๋ฌธ์๋ index๋งํผ ๋ํ ๋ ์ ์ธ๋๋ค.
a(97) + 5 = f(102) ์ง๋ง skip
์์ b์ d๊ฐ ์์ผ๋ 2๋ฒ์ ๊ฑด๋๋ฐ๊ณ 5๊ฐ๋ฅผ ๋ํ๋ ์ค์ +7์ด ๋๊ณ a->h๊ฐ ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ chatCodeAt()
๊ณผ fromCharCode()
ํจ์๋ฅผ ์ฌ์ฉํด์ ํ์๋๋ฐ,
๊ฒ์ํด๋ณด๋ ์์ด ์๋ฌธ์๋ 97~122๋ฒ์์ ์์๋ค.
function solution(s, skip, index) {
var answer = '';
for(let ch of s){
let n = ch.charCodeAt();
// console.log(n);
let i = 1;
let j = 0;
while (true){
let m = n+i>122? (n+i)%123+97:n+i;
let a = String.fromCharCode(m);
// console.log(a);
if(!skip.includes(a)){
j++;
// console.log(`${i}, ${j}, !skip.includes(${a})`);
}
if(j===index){
answer += a;
break;
}
i++;
}
}
return answer;
}
์ด๋ ๊ฒ ํ์๋๋ 16/20 ๊ฐ ํต๊ณผ.
์๋ชป๋ ๋ถ๋ถ์ ๋ชจ๋๋ฌ ์ฐ์ฐ์ ํตํด skip
์ ์๋ ๋ฌธ์์ธ์ง ํ์ธํ๋ ๊ณผ์ ์ ์์ ์ ๋ฐ์ ์์ด์ ๋ค์ ๋ดค๋ค.
ํ๋ฆฐ ํ
์คํธ์ผ์ด์ค๋ ์๋ง index๊ฐ ์ปค์ %123
ํ์๋ ์ด๋ฏธ ์ํ๋ฒณ ์๋ฌธ์ ๋ฒ์ 26์ ๋์ ๊ฒฝ์ฐ์ผ๊ฒ.
(n+i)%123
์ด 26 ์ด์์ผ ๊ฒฝ์ฐ ์ฌ๊ธฐ์ 97์ ๋ํ๋ฉด ๊ทธ ๊ฒฐ๊ณผ๋ z(122)๋ฅผ ๋์ด ์ํ๋ฒณ ์๋ฌธ์๊ฐ ์๋ ๋ค๋ฅธ ๋ฌธ์๊ฐ ๋์จ๋ค.
๊ทธ๋์ let m = n+i>122? ((n+i-97)%26)+97:n+i;
์ด๋ ๊ฒ ์์ ํ๊ณ 20/20 ํต๊ณผ.